package com.mycode.composite09.chaos;

import java.util.ArrayList;
import java.util.List;

// 文本文件类
public class Folder {

    private String name;

    private List<Folder> folderList = new ArrayList<>();

    private List<ImageFile> imageFileList = new ArrayList<>();

    private List<TextFile> textFileList = new ArrayList<>();

    public Folder(String name) {
        this.name = name;
    }

    // 增加 文件夹 类型成员
    public void addFolder(Folder folder) {
        folderList.add(folder);
    }

    // 增加 图像 类型成员
    public void addImage(ImageFile imageFile) {
        imageFileList.add(imageFile);
    }

    // 增加 文本 类型成员
    public void addText(TextFile textFile) {
        textFileList.add(textFile);
    }

    // 简化代码，模拟杀毒
    public void killVirus() {
        System.out.println("------ 对文件夹'" + name + "'进行杀毒！");
        for (Folder folder : folderList) {
            folder.killVirus();
        }

        for (ImageFile imageFile : imageFileList) {
            imageFile.killVirus();
        }

        for (TextFile textFile : textFileList) {
            textFile.killVirus();
        }
    }
}
